package jianbo; /**
 * Created by xueal on 2018/1/16.
 */
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.Locale;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


@WebServlet("/download")
public class DownLoadServlet extends HttpServlet {


    public DownLoadServlet() {
        super();
    }


    public void destroy() {
        super.destroy(); // Just puts "destroy" string in log
        // Put your code here
    }


    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doPost(request,response);
    }


    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        //处理请求
        //读取要下载的文件
        String OS_NAME = System.getProperty("os.name").toLowerCase(Locale.US);

        String fileName = "/root/doc/simple-debug.apk";
        if (OS_NAME.toLowerCase().contains("windows")){
            fileName = "D:\\github\\TakePhoto\\simple\\build\\outputs\\apk\\simple-debug.apk";
        }

        File f = new File(fileName);
        if(f.exists()){
            FileInputStream  fis = new FileInputStream(f);
            String filename=URLEncoder.encode(f.getName(),"utf-8"); //解决中文文件名下载后乱码的问题
            byte[] b = new byte[fis.available()];
            fis.read(b);
            response.setCharacterEncoding("utf-8");
            response.setHeader("Content-Disposition","attachment; filename="+filename+"");
            //获取响应报文输出流对象
            ServletOutputStream  out =response.getOutputStream();
            //输出
            out.write(b);
            out.flush();
            out.close();
        }

    }

    /**
     * Initialization of the servlet. <br>
     *
     * @throws ServletException if an error occurs
     */
    public void init() throws ServletException {
        // Put your code here
    }

}